

public class Nodo<T> {

	private T valor;
	private Nodo<T> siguiente;
	private Nodo<T> anterior;
	private int indice;

	public int getIndice() {
		return indice;
	}

	public void setIndice(int indice) {
		this.indice = indice;
	}

	public Nodo() {
	}

	public Nodo(T valor) {
		this.valor = valor;
		this.siguiente = null;
		this.anterior = null;
	}

	/**
	 * Get the value of anterior
	 * 
	 * @return the value of anterior
	 */
	public Nodo<T> getSiguiente() {
		return siguiente;
	}

	/**
	 * Set the value of anterior
	 * 
	 * @param anterior
	 *            new value of anterior
	 */
	public void setSiguiente(Nodo<T> siguiente) {
		this.siguiente = siguiente;
	}

	public Nodo<T> getAnterior() {
		return anterior;
	}

	/**
	 * Set the value of siguiente
	 * 
	 * @param anterior
	 *            new value of siguiente
	 */
	public void setAnterior(Nodo<T> anterior) {
		this.anterior = anterior;
	}

	/**
	 * Get the value of valor
	 * 
	 * @return the value of valor
	 */
	public T getValor() {
		return valor;

	}

	/**
	 * Set the value of valor
	 * 
	 * @param valor
	 *            new value of valor
	 */
	public void setValor(T valor) {
		this.valor = valor;
	}

	@Override
	public String toString() {
		return "[Indice=" + indice + ";Valor=" + valor + ";primero="
				+ (siguiente == null) + ";ultimo=" + (anterior == null)
				+ ";valor anterior="
				+ ((anterior != null) ? anterior.getValor() : "null")
				+ ";valor sig="
				+ ((siguiente != null) ? siguiente.getValor() : "null") + "]";
	}
}